package com.lyc.DTO;

import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.*;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;

@Data
public class PostsDTO {
    @NotNull(message = "作者ID不能为空")
    private int authorId; // 作者ID，关联users.id

    @NotNull(message = "文章ID不能为空")
    private Long id;// 文章ID，自增

    @NotBlank(message = "文章标题不能为空")
    private String title; // 文章标题

    @NotBlank(message = "文章slug不能为空")
    private String slug; // URL友好化的标题标识，如`my-first-post`

    private String summary; // 文章摘要

    @NotBlank(message = "文章内容不能为空")
    private String content; // 文章正文（Markdown或HTML格式）

    private String coverImage; // 封面图URL

    @NotBlank(message = "文章状态不能为空")
    private String status; // 状态：published(已发布)、draft(草稿)、trash(回收站)

    @NotBlank(message = "评论状态不能为空")
    private String commentStatus; // 评论状态：open(开放)、closed(关闭)

    @NotNull(message = "置顶状态不能为空")
    private Integer isTop; // 是否置顶（0:否, 1:是）

    private String metaData; // 扩展元数据，如SEO关键词、自定义字段等（JSON格式）

    @PastOrPresent(message = "发布时间不能早于当前时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime publishedAt; // 发布时间（NULL则为草稿）
}
